'''
新连结强度=旧连结强度-调整系数*（累加到累加）*输出*（1-输出）*上级输入

   累加到累加=（节点误差/节点输出的导数）*（节点输出/网络层的导数）*（网络层/上一级输出的导数）
         节点误差/节点输出的导数=末端输出-标准输出
         节点输出/网络层的导数=输出*（1-输出）
         网络层/上一级输出的导数=连结强度

'''
def tree1_cal(body1,body2,body3,body3_std,tree1,tree_long1,tree2,tree_long2,body_long1,body_long2,body_long3):
   
    body_error_sum=[0]*body_long2
    for num1 in range(0,body_long1):
        for num2 in range(0,body_long2):
            body_error_sum[num2]=0
            for num3 in range(0,body_long3):
                 body_error_sum[num2]= body_error_sum[num2]+(body3[num3]-body3_std[num3])*body3[num3]*tree2[num2*body_long3+num3]
            #body_error_sum[num2]+(body3[num3]-body3_std[num3])*body3[num3]*(1-body3[num3])*tree2[num2*body_long3+num3]
            tree1[num1*body_long2+num2]=tree1[num1*body_long2+num2]-3*body_error_sum[num2]*body2[num2]*(1-body2[num2])*body1[num1]
           # print(body3)
   # for num1 in range(0,100):
#    print(tree1[num1*body_long2]," ",body_error_sum[num1])

      
   # print(body2)




    

    return tree1
